Python使用uwsgi部署Flask应用 您所在的位置:网站首页 启动方式 uwsgi Python使用uwsgi部署Flask应用

Python使用uwsgi部署Flask应用

2023-08-19 07:01| 来源: 网络整理| 查看: 265

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

前言

众所周知,flask应用写好了之后可以直接跑。但是,but,有一个非常重要且不可忽视,一旦忽视就会出现十分严重后果的问题,那么,到底是什么问题呢。

虽然确实flask app可以不通过代理而直接使用app.run(host="0.0.0.0")直接在生产环境运行。但是不知道小伙伴们是否注意到,在通过该方法运行之后日志终端会输出一条warning警告,告诉我们不建议通过该方法直接在生产环境部署应用。这是因为app.run方法是使用flask内置的wsgi服务器进行程序运行的,该服务器不适用于生产 ,也不能很好的进行扩展。那么,该如何正确的将自己的应用部署在生产环境上呢?这里我将推荐大家使用uwsgi+nginx进行部署。

准备工作 下载uwsgi

pip install uwsgi

准备好自己的应用

这里我以一个最小化可行性flask应用为例,当请求首页时,会返回‘hello, world!’字样

# app.py from flask import Flask app = Flask(__name__="__main__") @app.route("/") def index(): return 'hello, world!' app.run() 正式部署

uwsgi可通过命令行命令直接部署,但如果配置项较多的情况下,也可通过配置文件进行部署。

命令行直接部署 uwsgi --http :8000 --wsgi-file app.py --callable app

最简化部署只需要3个参数,http参数配置flask应用要运行的地址:,wsgi-file参数配置flask应用(Flask对象)所在的文件,即上文代码所在的文件,callable参数配置Flask对象的名称,在上文中的代码即为app。 运行上述命令后,即可在8000端口访问到我们的应用。

通过配置文件部署

配置文件其实也只不过是把配置参数放到文件中去而已

# uwsgi.ini [uwsgi] http = 127.0.0.1:5000 wsgi-file = app.py callable = app

准备好配置文件后,命令行运行uwsgi --ini uwsgi.ini即可

结语 重启uwsgi

uwsgi --reload uwsgi.pid

停止uwsgi

uwsgi --stop uwsgi.pid

更多配置参数

uwsgi-docs-zh.readthedocs.io/zh_CN/lates…

结语中的结语

flask应用除了可以用uwsgi直接部署外,一般还会加个nginx搞个代理配置,这个就下一回说吧。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有